The present invention pertains to a method and apparatus for managing transaction requests in a computer service network. In particular, the invention efficiently distributes transaction requests from network clients across a pool of available client servers, using ranked server attributes and a random workload distribution function.
Data-on-demand computer service networks, primarily for distributing information to subscribing clients, have traditionally used a spoke-and-hub database architecture. This architecture places a large central database at the hub of a computer network which enables numerous clients to share the database. A client accesses the network via a remote access station, usually a personal computer fitted with a modem and special application software. Invoking the application software initiates a client application, i.e. a specific use of the personal computer as an interface for communicating with the central database. The client application then requests a session with the central database. A session refers to all the activities between the client application and the central database. During the session, the client makes one or more transaction requests for specific data using algebraic, boolean, or probabilistic queries that define attributes of the desired data. The service network includes a central processing facility, typically a large, high-capacity computer, for receiving and managing communications between the many client applications and the database. The central processing facility processes these queries, searches the database, and transmits the desired data to client applications at the remote access stations.
Recently, such service networks have begun using a distributed database architecture that provides several component databases with dedicated client servers, instead of one central database and a central processing facility. Each client server, or search engine, includes facilities for processing data queries, searching its database, and transmitting data to requesting client applications. The distributed architecture allows greater data capacity, duplicate or redundant data storage, and decreased response time to client requests. In particular, the distributed database is often organized such that high-demand data resides within two or more component databases and low-demand data resides within other component databases. Additionally, the distributed architecture not only tolerates differences among client servers but also exploits these differences to achieve an optimal use of computer resources. For instance, component databases containing low-demand data may be linked to less-costly, rudimentary client servers, whereas high-demand databases may have state-of-the-art client servers. Thus, in short, the distributed architecture provides much greater flexibility in managing the computer service network.
Although operating under the distributed architecture provides high levels of flexibility, it also requires more elaborate and complex techniques for managing and coordinating communications between client applications and client servers. In contrast to the hub-and-spoke architecture requiring communications between one central processing facility and a number of client applications, the distributed architecture requires communications between many client servers and each client application. Moreover, the advent of increased levels of data redundancy raises new concerns for intelligently distributing requests, i.e., load balancing, among client servers having identical component databases or other duplicate functionality. Accordingly, there is a need for a method and a system of answering client requests that efficiently assigns requests using not only data-request or client server criteria but also network load-balancing factors.